home *** CD-ROM | disk | FTP | other *** search
/ Your Choice 3 / Your Choice Software Collection 3.iso / dos / secdr13d / secdrv.h < prev    next >
C/C++ Source or Header  |  1994-04-20  |  3KB  |  95 lines

  1. /* Secure Drive V1.3d */
  2. /* Header file for cryptdsk.c and login.c */
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <conio.h>
  7. #include <bios.h>
  8. #include <dos.h>
  9. #include <string.h>
  10. #include <ctype.h>
  11. #include "md5.h"
  12. #include "usuals.h"
  13.  
  14.  
  15. #define MAXPASS 256 /* Max length of passphrase */
  16. #define ROUNDS  8
  17. #define KEYLEN  (6*ROUNDS+4)    /* length of key schedule */
  18. #define MAXDRV  4
  19. #define PASS_ITER 2048          /* Key hashing iterations */
  20. #define ESC 0x01b               /* Esc code*/
  21.  
  22. struct diskdata
  23.  {
  24.   unsigned char dddrv;
  25.            char drvltr;
  26.   unsigned firstcyl;
  27.   unsigned char firsthd;
  28.   unsigned char firstsec;
  29.   unsigned lastcyl;
  30.   unsigned char maxsec;
  31.   unsigned char maxhd;
  32.   unsigned secsize;
  33.   unsigned serial[2];
  34.   unsigned char active;
  35.   unsigned char flag2m;  /* diskette is 2M-formatted 1.3d*/
  36.   unsigned fatsiz;       /* FAT size for 2M-formatted diskettes 1.3d */
  37.  };
  38.  
  39. struct tsrdata
  40.  {
  41.   unsigned char tsrver[4];
  42.   void far *real_dbios_vect;
  43.   unsigned char fkeychk[4];
  44.   unsigned char fkey[104];
  45.   unsigned char fkeyv10;
  46.            char pad1[3];
  47.   unsigned char hkeychk[4];
  48.   unsigned char hkey[104];
  49.   unsigned char hkeyv10;
  50.            char pad2[3];
  51.            int  incfof;
  52.            int  outcfof;
  53.   struct diskdata fda;
  54.   struct diskdata fdb;
  55.   struct diskdata hd[MAXDRV];
  56.  };
  57.  
  58. void extern far IdeaCFB(void *iv,void *key,void *plain,
  59.                         void *cipher,unsigned len);
  60. void extern far IdeaCFBx(void *iv,void *key,void *cipher,
  61.                          void *plain,unsigned len);
  62.  
  63. void calcdiskparams(unsigned char *buf,unsigned *maxtrack,
  64.                     unsigned *maxhead,unsigned *maxsector,
  65.                     unsigned *secsize,unsigned serial[2]);
  66. void invgets(char *input); /* Get without displaying, allow backspace */
  67. void readsec(unsigned drive,unsigned head,unsigned track,
  68.              unsigned sector,unsigned nsects,void *buffer);
  69. void writesec(unsigned drive,unsigned head,unsigned track,
  70.               unsigned sector,unsigned nsects,void *buffer);
  71. int getyn(void);
  72. void getkey(unsigned char *key,unsigned char *check,int confirm);
  73. void getkeydf(unsigned char *key,unsigned char *check,unsigned char *bufck);
  74. void setkeye(unsigned char *key,unsigned char *check);
  75. void setkeydf(unsigned char *key,unsigned char *check,unsigned char *bufck);
  76. void setkey10(unsigned char *key,unsigned char *check);
  77. void setkey13(unsigned char *key,unsigned char *check);
  78. void set_compat_mode(void);
  79.  
  80. void readptbl(unsigned char letter,unsigned *ptdrive,       /*1.1*/
  81.               unsigned *pthead,unsigned *pttrack);          /*1.1*/
  82. void rdptx(unsigned drive,unsigned head,unsigned track,     /*1.1*/
  83.           unsigned char *letter, unsigned *ptdrive,         /*1.1*/
  84.           unsigned *pthead,unsigned *pttrack,int recurse,   /*1.1*/
  85.           unsigned char *buf);                              /*1.1*/
  86.  
  87. int rldbios(int cmd,int drive, int head, int track,int sect,
  88.             int nsect,void *buf);
  89.  
  90. struct tsrdata far *gettsradr(void);
  91. void en_key_idea(word16 *userkey, word16 *Z);
  92. extern struct tsrdata far *cryptdata;
  93.  
  94.  
  95.